.png)
?
隨著以互聯(lián)網(wǎng)、云計(jì)算為標(biāo)志的信息產(chǎn)業(yè)的飛速發(fā)展,各種app應(yīng)用遍地開花,在應(yīng)用客戶數(shù)達(dá)到百萬千萬級(jí)別和數(shù)據(jù)處理達(dá)到海量以后,采用常規(guī)的編程方式后端服務(wù)器性能會(huì)急劇下降。多線程網(wǎng)絡(luò)編程模型正是為解決高并發(fā)問題而打磨的利器。對(duì)當(dāng)前技術(shù)潮流,推出了Linux多線程并發(fā)服務(wù)器編程這門課程。本課程由淺入深,讓零基礎(chǔ)的學(xué)員可以快速掌握linux多線程網(wǎng)絡(luò)編程技術(shù),同時(shí)深入剖析技術(shù)背后的實(shí)現(xiàn)原理,讓學(xué)員既知其然又知其所以然,提升學(xué)員競(jìng)爭(zhēng)力,實(shí)現(xiàn)更好的職業(yè)發(fā)展。????
?
.jpg)
?
1.課程研發(fā)環(huán)境
開發(fā)工具:VI/VIM;
操作系統(tǒng):Linux?Ubuntu?12.04
虛擬機(jī):VMware?Workstation?8.0
其他工具:codeblock或者xshell
?
2.內(nèi)容簡(jiǎn)介
本課程從基礎(chǔ)的進(jìn)程、線程概念講起逐步深入,通過理論與實(shí)踐結(jié)合的方式,使學(xué)員快說掌握linux多線程網(wǎng)絡(luò)編程技術(shù),并理解技術(shù)背后的實(shí)現(xiàn)原理。課程詳細(xì)講解了網(wǎng)絡(luò)編程涉及的數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)協(xié)議、編程接口、g++、gdb、makefile編程工具以及netstat、lsof等相關(guān)性能調(diào)試命令。并通過實(shí)例深入剖析并發(fā)服務(wù)器程序的開發(fā)流程、架構(gòu)設(shè)計(jì)、運(yùn)行原理、性能調(diào)優(yōu)以及異步I/O模型、線程池、多線程并發(fā)控制、線程間通信等關(guān)鍵技術(shù)。課程共分四個(gè)部分,第一部分是linux網(wǎng)絡(luò)編程基礎(chǔ)理論介紹,該部分講解了linux多線程網(wǎng)絡(luò)編程用到的基本理論知識(shí);第二部分為基本網(wǎng)絡(luò)編程,介紹了linux編程基本工具使用,重點(diǎn)介紹了TCP套接字編程和UDP套接字編程;第三部分是高級(jí)網(wǎng)絡(luò)編程,主要介紹了套接字選項(xiàng)、多種IO模型以及并發(fā)服務(wù)器用到的線程池技術(shù);第四部分為項(xiàng)目案例,講解了FTP并發(fā)服務(wù)器程序的實(shí)現(xiàn)。
.png)
?
第一部分:網(wǎng)絡(luò)編程理論基礎(chǔ)
第一講:進(jìn)程的引入及定義
第二講:進(jìn)程的特征及狀態(tài)
第三講:進(jìn)程的調(diào)度
第四講:線程的引入及定義
第五講:線程的分類
第六講:線程的互斥
第七講:線程的同步
第八講:線程同步與互斥案例分析(1)
第九講:線程同步與互斥案例分析(2)
第十講:多線程編程:linux線程庫(kù)介紹
第十一講:多線程編程:linux線程庫(kù)函數(shù)(1)
第十二講:多線程編程:linux線程庫(kù)函數(shù)(2)
第十三講:多線程編:linux線程庫(kù)函數(shù)(3)
第十四講:多線程編程:linux線程庫(kù)函數(shù)(4)
第十五講:常見數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)類型介紹
第十六講:常見數(shù)據(jù)結(jié)構(gòu):基本數(shù)據(jù)結(jié)構(gòu)(1)
第十七講:常見數(shù)據(jù)結(jié)構(gòu):基本數(shù)據(jù)結(jié)構(gòu)(2)
第十八講:常見數(shù)據(jù)結(jié)構(gòu):STL介紹(1)
第十九講:常見數(shù)據(jù)結(jié)構(gòu):STL介紹(2)
第二十講:OSI網(wǎng)絡(luò)模型與TCP/IP模型
第二十一講:TCP協(xié)議與UDP協(xié)議
第二部分:基本網(wǎng)絡(luò)編程:
第二十二講:Linux常用命令(1)
第二十三講:Linux常用命令(2)
第二十四講:VIM用法介紹(1)
第二十五講:VIM用法介紹(2)
第二十六講:g++及makefile用法介紹(1)
第二十七講:g++及makefile用法介紹(2)
第二十八講:g++及makefile用法介紹(3)
第二十九講:socket網(wǎng)絡(luò)編程簡(jiǎn)介(1)
第三十講:socket網(wǎng)絡(luò)編程簡(jiǎn)介(2)
第三十一講:TCP套接字基本網(wǎng)絡(luò)編程(1)
第三十二講:TCP套接字基本網(wǎng)絡(luò)編程(2)
第三十三講:TCP套接字基本網(wǎng)絡(luò)編程(3)
第三十四講:TCP套接字基本網(wǎng)絡(luò)編程(4)
第三十五講:TCP套接字基本網(wǎng)絡(luò)編程(5)
第三十六講:UDP套接字基本網(wǎng)絡(luò)編程(1)
第三十七講:UDP套接字基本網(wǎng)絡(luò)編程(2)
第三十八講:UDP套接字基本網(wǎng)絡(luò)編程(3)
第三部分:高級(jí)網(wǎng)絡(luò)編程初探
第三十九講:套接字選項(xiàng)(1)
第四十講:套接字選項(xiàng)(2)
第四十一講:套接字選項(xiàng)(3)
第四十二講:IO模型(1)
第四十三講:IO模型(2)
第四十四講:IO模型(3)
第四十五講:Linux系統(tǒng)日志
第四十六講:線程池技術(shù)(1)
第四十七講:線程池技術(shù)(2)
第四十八講:線程池技術(shù)(3)
第四十九講:線程池技術(shù)(4)
第四部分項(xiàng)目案例:
第五十講:并發(fā)服務(wù)器編程(1)
第五十一講:并發(fā)服務(wù)器編程(2)
第五十二講:并發(fā)服務(wù)器編程(3)
第五十三講:并發(fā)服務(wù)器編程(4)
?
.png)
?

?

?

?

?

?
目標(biāo)一.?掌握進(jìn)程和線程的基本概念,理解進(jìn)程的特征、狀態(tài)轉(zhuǎn)化、調(diào)度以及線程的分類、互斥、同步
目標(biāo)二.?掌握linux線程libpthread的用法及原理。
?
目標(biāo)三.?理解OSI網(wǎng)絡(luò)模型與TCP/IP模型
?
目標(biāo)四.?學(xué)會(huì)使用linux系統(tǒng)中的grep、ps、top、lsof常用命令,掌握vim、g++及makefile等開發(fā)、編譯工具的用法。
?
目標(biāo)五.?深入理解SOCKET網(wǎng)絡(luò)通信的內(nèi)部原理、掌握TCP和UDP基本的網(wǎng)絡(luò)編程方法。
?
目標(biāo)六.?掌握套接字選項(xiàng)使用方法,深入理解并學(xué)會(huì)使用select函數(shù)。
目標(biāo)七.?深入理解線程池技術(shù),能夠自己編寫線程池。
目標(biāo)八:通過FTP并發(fā)服務(wù)器項(xiàng)目深入理解并發(fā)服務(wù)器模型,能夠自己設(shè)計(jì)并開發(fā)簡(jiǎn)單的并發(fā)服務(wù)器程序。